﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Text;
using Styx.Helpers;
using Styx.Common;
using Styx;
using DefaultValue = Styx.Helpers.DefaultValueAttribute;


namespace DataMiner{
    public class DataMinerSettings : Settings
    {
        private static DataMinerSettings _instance;

        public DataMinerSettings()
            : base(Path.Combine(Path.Combine(Styx.Helpers.GlobalSettings.SettingsDirectory, "Settings"), string.Format("DataMinerSettings_{0}.xml", StyxWoW.Me.Name)))
        {

        }

        public static DataMinerSettings Instance { get { return _instance ?? (_instance = new DataMinerSettings()); } }

        #region Category: General

        [Setting]
        [Category("General")]
        [DefaultValue(30)]
        [DisplayName("Time Send update")]
        public int Time { get; set; }

        [Setting]
        [Category("General")]
        [DefaultValue(300)]
        [DisplayName("Stuck Time (in s)")]
        public int StuckTime { get; set; }

        [Setting]
        [Category("General")]
        [DefaultValue("winz.dnsalias.com")]
        [DisplayName("URL to the DataminerServer")]
        public string ServerUrl { get; set; }
        
        #endregion  
        

        [Setting]
        [Category("Debug")]
        [DefaultValue(false)]
        [DisplayName("Debug")]
        [Description("NEVER USE THIS! ONLY FOR THE DEV!")]
        public Boolean debug { get; set; }

        [Setting]
        [Category("Debug")]
        [DefaultValue(false)]
        [DisplayName("Perfomance Debug")]
        [Description("If you get freezes or lags you can turn this on. It will show more messages if lags or freezes occour everytime X happens give this infomation to the author")]
        public Boolean pdebug { get; set; }

    }

}
